package 排序;

public class 比较版本号 {
    public int compare (String version1, String version2) {
        //split将逗号之间都分割开来
        String[] str1 = version1.split("\\.");
        String[] str2 = version2.split("\\.");
        int len = Math.max(str1.length, str2.length);
        for (int i = 0; i < len; i++) {
            //分割逗号后一个一个的比较
            String a = i<str1.length?str1[i]:"0";
            String b = i<str2.length?str2[i]:"0";

            //然后进行筛选 把有0的去掉 因为题目要求01 和 1 是相等的
            for (int j = 0; j < a.length(); j++) {
                //满足任意一个就会跳出循环
                if (j==a.length()-1||a.charAt(j)!='0'){
                    //string.substring(j)是从j下标开始索引到最后一个元素加入到新创建的字符串中
                    a = a.substring(j);
                    break;
                }
            }
            for (int j = 0; j < b.length(); j++) {
                if (j==b.length()-1||b.charAt(j)!='0'){
                    b = b.substring(j);
                    break;
                }
            }
            //现在就可以开始比较了
            if (a.length()>b.length()){
                return 1;
            }
            else if (a.length()<b.length()){
                return -1;
            }else {
                if (a.compareTo(b)>0){
                    return 1;
                }else if (a.compareTo(b)<0){
                    return -1;
                }
            }

        }
        return 0;
    }
}
